home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / binutils.7 / binutils / binutils-2.7 / gas / testsuite / gasp / macro.asm < prev    next >
Encoding:
Assembly Source File  |  1996-07-04  |  1.1 KB  |  103 lines

  1.     .MACRO    SUM FROM=0, TO=9
  2.     ; \FROM \TO
  3.     MOV    R\FROM,R10
  4. COUNT    .ASSIGNA    \FROM+1
  5.     .AWHILE    \&COUNT LE \TO
  6.     MOV    R\&COUNT,R10
  7. COUNT    .ASSIGNA    \&COUNT+1
  8.     .AENDW
  9.     .ENDM
  10.  
  11.     SUM 0,5
  12.     SUM     TO=5
  13.     SUM     FROM=2, TO=5
  14.  
  15.  
  16. ; hi this is a comment
  17.     .MACRO    BACK_SLASH_SET
  18.     \(MOV    #"\",R0) 
  19.     .ENDM
  20.     BACK_SLASH_SET
  21.     .MACRO    COMM
  22.     bar    ; this comment will get copied out
  23.     foo    \; this one will get dropped
  24.     .ENDM
  25.     COMM
  26.     BACK_SLASH_SET
  27.     .MACRO    PLUS2
  28.     ADD    #1,R\&V1
  29.     .SDATA    "\&V'1"
  30.     .ENDM
  31. V    .ASSIGNC    "R"
  32. V1    .ASSIGNA    1
  33.     PLUS2
  34.     .MACRO    PLUS1    P,P1
  35.     ADD    #1,\P1
  36.     .SDATA    "\P'1"
  37.     .ENDM
  38.     PLUS1    R,R1
  39.  
  40.     .MACRO    SUM P1
  41.     MOV    R0,R10
  42.     ADD    R1,R10
  43.     ADD    R2,R10
  44.     \P1    
  45.     ADD    R3,R10
  46.     .ENDM
  47.  
  48.     SUM    .EXITM
  49.  
  50.     .MACRO foo bar=a default=b
  51.     \bar
  52.     \default
  53.     bar
  54.     default
  55.     .ENDM
  56.     foo default=dog bar=cat
  57.     foo X Y
  58.     foo
  59.     foo bar=cat default=dog
  60.  
  61.  
  62.     .MACRO    foo bar
  63.     HI
  64.     HI \bar
  65.     HI
  66.     .ENDM
  67.  
  68.     foo 1
  69.     foo 123
  70.     foo 1 2 3 4
  71.     foo
  72.  
  73.     
  74.     .MACRO    PUSH Rn
  75.     MOV.L    \Rn,@-r15
  76.     .ENDM
  77.     PUSH    R0
  78.     PUSH    R1
  79.  
  80.  
  81.     .MACRO    RES_STR STR, Rn
  82.     MOV.L    #str\@,\Rn
  83.     BRA    end_str\@
  84.     NOP
  85. str\@    .SDATA "\STR"
  86.     .ALIGN    2
  87. end_str\@
  88.     .ENDM
  89.     
  90.     RES_STR    "ONE",R0    
  91.     RES_STR    "TWO",R1
  92.     RES_STR    "THREE",R2
  93.  
  94.  
  95.  
  96.     RES_STR STR=donkey Rn=R1
  97.     RES_STR donkey,R1
  98.      RES_STR donkey Rn=R1
  99.     .END
  100.  
  101.  
  102.  
  103.